/**
 * @author Allen
 * @since 2011-09-10
 * 百科业务类
 */
package com.qeado.baike.service;

import com.qeado.baike.model.Baike;
import com.qeado.baike.model.BaikeRef;
import com.qeado.util.FileUpload;
import com.qeado.util.PageHelper;

public interface BaikeService {

	/**
	 * 根据ID查询词条
	 * @param id 词条ID
	 * @return 词条对象数据
	 */
	public Baike queryById(String id); // 按ID查询
	
	/**
	 * 根据词名称查询
	 * @param baikeWord 词条名称
	 * @return 查询结果
	 */
	public Baike queryByWord(String baikeWord);
	
	/**
	 * 创建待审核的词条
	 * @param baikeRef
	 * @return 成功则返回true ， 失败就返回false
	 */
	public boolean insertBaike(BaikeRef baikeRef);
	
	/**
	 * 创建新词条
	 * @param baike 新的百科词条
	 * @return 成功为true 失败为false
	 */
	public boolean createBaike(Baike baike);
	/**
	 * 创建新词条，先处理图片上传
	 * @param baike 新的百科词条
	 * @param upload 图片上传文件对象
	 * @return 成功为true 失败为false
	 */	
	public boolean createBaike(Baike baike ,  FileUpload upload);
	
	/**
	 * 按照关键字和排序条件来查询百科词条
	 * @param pageNum 页码
	 * @param pageSize 页大小
	 * @param key 关键字
	 * @param orderBy 排序依据
	 * @param asc 顺序
	 * @return 百科列表
	 */
	public PageHelper listByKey(int pageNum, int pageSize, String key, String orderBy, String asc )  throws Exception;
	
	/**
	 * 根据所属类别查询百科词条
	 * @param pageNum 页码
	 * @param pageSize	页大小
	 * @param typeCode	所属类别
	 * @param orderBy	排序依据
	 * @param asc	顺序
	 * @return	百科列表
	 */
	public PageHelper listBySort(int pageNum, int pageSize, String typeCode, String orderBy, String asc )  throws Exception;

	/**
	 * 查询所有的百科词条
	 * @param pageNum	页码
	 * @param pageSize	页大小
	 * @param orderBy	排序条件
	 * @param asc	顺序
	 * @return	百科列表
	 * @throws Exception
	 */
	public PageHelper listAll(int pageNum, int pageSize, String orderBy, String asc) throws Exception;
}
